package com.hemerasolutions.v2trainer.controller.interfaces;

import java.io.Serializable;
import java.util.Date;

import javax.faces.application.FacesMessage.Severity;
import javax.servlet.ServletContext;

import org.primefaces.event.FileUploadEvent;
import org.springframework.context.MessageSource;

import com.hemerasolutions.v2trainer.model.multimedia.Photo;
import com.hemerasolutions.v2trainer.service.interfaces.UserServiceInterface;

public interface BaseBeanInterface extends Serializable {
	
	public abstract void showWarnMessage(String title, String message);

	public abstract void showErrorMessage(String title, String message);

	public abstract void showInfoMessage(String title, String message);

	public abstract void addMessage(String title, String message, Severity severity);

	public abstract String localizedText(String code);

	public abstract long getSerialversionuid();

	public abstract byte[] resizeImage(byte[] imagem, int height, int width);

	public abstract Photo uploadPhoto(FileUploadEvent ev, Photo photo);

	public abstract ServletContext getServletContext();

	public MessageSource getMessageSource();

	public UserServiceInterface getUserService();

	public void setMessageSource(MessageSource messageSource);

	public void setUserService(UserServiceInterface userService);

	public abstract void updatePFComponnent(String pfComponent);


	public abstract <T> void setCCValue(String name, Object value,
			Class<T> type);

	public abstract <T> T getCCValue(String name, Class<T> type);

	public abstract Date endDayDateHour(Date dt);

	public abstract Date begDayDateHour(Date dt);

	public abstract <T> void setContextValue(String name, Object value,
			Class<T> type);

	public abstract <T> T getContextValue(String name, Class<T> type);

	public abstract void executeJavascript(String script);


}
